﻿using Hicap.QRCodeWarehouse.Processor.Model;
using MongoDB.Driver;
using System;
using System.Collections.Generic;
using System.Threading.Tasks;

namespace Hicap.QRCodeWarehouse.Processor.Manager
{
    public interface ICodeGenManager : IManagerBase
    {
        Task<bool> InsertRecordAsync<T>(T[] data, IMongoCollection<T> collection,
            Func<T, Tuple<FilterDefinition<T>, UpdateDefinition<T>>> definitionFunc, IClientSessionHandle clientSession);

        Task<List<T>> ExractDataFromZip<T>(ImportCommandDto input, Action<T> action) where T : class;

        Task UpdateCodeLinked(List<QrCodeLinkedRecord> list, ImportCommandDto config);
    }
}